import BasePointEntity from "./BasePointEntity.js";
import CommonUtil from "../../util/commonUtil.js";
/**
 * 点实体类
 * @class
 * @extends graphic.entity.BasePointEntity
 */
class PointEntity extends BasePointEntity {
  /**
   * 构造函数
   * @param {Object} options 选项参数
   * @param {Array.<Number>|Cesium.Cartesian3} [options.position=[111, 28, 0]] 【点状】矢量数据时的坐标位置，具体看子类实现
   * @param {Object} [options.style] 矢量数据的 样式信息，具体见各类数据的说明
   * @param {number} [options.style.pixelSize=6] 像素大小
   * @param {string | Cesium.Color} [options.style.color="#ffffff"] 颜色
   * @param {number} [options.style.opacity=1.0] 透明度，取值范围：0.0-1.0
   * @param {boolean} [options.style.outline=false] 是否边框
   * @param {string | Cesium.Color} [options.style.outlineColor="#ffffff"] 边框颜色
   * @param {number} [options.style.outlineOpacity=0.6] 边框透明度
   * @param {number} [options.style.outlineWidth=2] 边框宽度
   * @param {Cesium.DistanceDisplayCondition} [options.style.distanceDisplayCondition={ near: 0.1, far: 1000000}] 距离显示条件
   */
  constructor(options) {
    // 初始化默认样式
    const defaultStyle = {
      show: true,
      pixelSize: 6,
      color: Cesium.Color.WHITE,
      opacity: 1.0,
      outline: false,
      outlineColor: Cesium.Color.WHITE,
      outlineOpacity: 0.6,
      outlineWidth: 2,
      distanceDisplayCondition: { near: 0.1, far: 1000000 },
    };
    // 合并样式
    options.style = CommonUtil.mergeStyleToDefault(defaultStyle, options.style);
    super(options);
  }
}
export default PointEntity;
